﻿/******************************************************************************
 * 【本类功能概述】                                 					      *
 *  版权所有（C）2017-20XX，米兔网络                                         *
 *  保留所有权利。                                                            *
 ******************************************************************************
 *  作者 : <hughjk>
 *  创建时间:2019年5月24日 14:45:39
 *  文件描述:监测代码是否在运行的时候进行了修改
 *****************************************************************************/

namespace Util
{
    using UnityEditor;
#if isCompilingCode
    using UnityEngine;
    [InitializeOnLoad]
    public class isCompilingCode //检测游戏运行时改了代码.自动取消运行
    {
        static isCompilingCode()
        {
            debug.log("[Start isCompilingCode]");
            EditorApplication.update += Update;
        }

        private static void Update()
        {
            if (Application.isPlaying)//是否正在运行
            {
                if (EditorApplication.isCompiling ||//是否正编译
                    EditorApplication.isUpdating ||//是个正在更新资源
                    EditorApplication.isTemporaryProject)//在构建资源
                {
                    debug.log("运行时编辑代码.停止运行!!!!");
                    EditorApplication.isPlaying = false; //用于退出运行
                }
            }
        }
    }

#endif

    [InitializeOnLoad]
    public class CompilingCodeEditor
    {
        static CompilingCodeEditor()
        {
            MacroSwitch.Add("isCompilingCode");
        }
    }
}